home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / bin / pilprint.py < prev    next >
Text File  |  2009-02-21  |  2KB  |  94 lines

  1. #! /usr/bin/python
  2. #
  3. # The Python Imaging Library.
  4. # $Id: pilprint.py 2134 2004-10-06 08:55:20Z fredrik $
  5. #
  6. # print image files to postscript printer
  7. #
  8. # History:
  9. # 0.1   1996-04-20 fl   Created
  10. # 0.2   1996-10-04 fl   Use draft mode when converting.
  11. # 0.3   2003-05-06 fl   Fixed a typo or two.
  12. #
  13.  
  14. VERSION = "pilprint 0.3/2003-05-05"
  15.  
  16. import Image
  17. import PSDraw
  18.  
  19. letter = ( 1.0*72, 1.0*72, 7.5*72, 10.0*72 )
  20.  
  21. def description(file, image):
  22.     import os
  23.     title = os.path.splitext(os.path.split(file)[1])[0]
  24.     format = " (%dx%d "
  25.     if image.format:
  26.         format = " (" + image.format + " %dx%d "
  27.     return title + format % image.size + image.mode + ")"
  28.  
  29. import getopt, os, sys
  30.  
  31. if len(sys.argv) == 1:
  32.     print "PIL Print 0.2a1/96-10-04 -- print image files"
  33.     print "Usage: pilprint files..."
  34.     print "Options:"
  35.     print "  -c            colour printer (default is monochrome)"
  36.     print "  -p            print via lpr (default is stdout)"
  37.     print "  -P <printer>  same as -p but use given printer"
  38.     sys.exit(1)
  39.  
  40. try:
  41.     opt, argv = getopt.getopt(sys.argv[1:], "cdpP:")
  42. except getopt.error, v:
  43.     print v
  44.     sys.exit(1)
  45.  
  46. printer = None # print to stdout
  47. monochrome = 1 # reduce file size for most common case
  48.  
  49. for o, a in opt:
  50.     if o == "-d":
  51.         # debug: show available drivers
  52.         Image.init()
  53.         print Image.ID
  54.         sys.exit(1)
  55.     elif o == "-c":
  56.         # colour printer
  57.         monochrome = 0
  58.     elif o == "-p":
  59.         # default printer channel
  60.         printer = "lpr"
  61.     elif o == "-P":
  62.         # printer channel
  63.         printer = "lpr -P%s" % a
  64.  
  65. for file in argv:
  66.     try:
  67.  
  68.         im = Image.open(file)
  69.  
  70.         title = description(file, im)
  71.  
  72.         if monochrome and im.mode not in ["1", "L"]:
  73.             im.draft("L", im.size)
  74.             im = im.convert("L")
  75.  
  76.         if printer:
  77.             fp = os.popen(printer, "w")
  78.         else:
  79.             fp = sys.stdout
  80.  
  81.         ps = PSDraw.PSDraw(fp)
  82.  
  83.         ps.begin_document()
  84.         ps.setfont("Helvetica-Narrow-Bold", 18)
  85.         ps.text((letter[0], letter[3]+24), title)
  86.         ps.setfont("Helvetica-Narrow-Bold", 8)
  87.         ps.text((letter[0], letter[1]-30), VERSION)
  88.         ps.image(letter, im)
  89.         ps.end_document()
  90.  
  91.     except:
  92.         print "cannot print image",
  93.         print "(%s:%s)" % (sys.exc_type, sys.exc_value)
  94.